﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
* 项目名称 ：UsingEventAggregator.Core
* 项目描述 ：
* 类 名 称 ：ModelResourcesBase
* 类 描 述 ：
* 所在的域 ：DKYFZX_171
* 命名空间 ：UsingEventAggregator.Core
* 机器名称 ：DKYFZX_171
* CLR 版本 ：4.0.30319.42000
* 作    者 ：su
* 创建时间 ：2019-10-17 17:31:59
* 更新时间 ：2019-10-17 17:31:59
* 版 本 号 ：v1.0.0.0
*******************************************************************
* Copyright @ su 2019. All rights reserved.
*******************************************************************
//----------------------------------------------------------------*/
#endregion

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
using System.Threading;



namespace UsingEventAggregator.Core
{

    /// <summary>
    /// 功能描述    AppResources.
    /// 创 建 者    ：su
    /// 创建日期    ：2019-10-17 12:03:35
    /// 最后修改者  ：su
    /// 最后修改日期：2019-10-17 12:03:35.
    /// </summary>
    public abstract class ModelResourcesBase<T> :  INotifyPropertyChanged
           where T : class
    {
        public static ModelResourcesBase<T> Current { get; private set; }

        public ModelResourcesBase()
        {
            Current = this;
        }

        public T L10N { get; set; }

        private string _language;
    
        /// <summary>
        /// 获取或设置 Language 的值
        /// </summary>
        public string Language
        {
            get { return _language; }
            set
            {
                if (_language == value)
                    return;

                _language = value;
                var cultureInfo = new CultureInfo(value);
                ChangeCulture(cultureInfo);
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        public abstract void ChangeCulture(System.Globalization.CultureInfo cultureInfo);
        private void RaiseProoertyChanged()
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(""));
        }

    }
}
